//package xcmg.syn.infra;
//
//
//import java.io.BufferedReader;
//import java.io.IOException;
//import java.io.InputStreamReader;
//import java.io.OutputStreamWriter;
//import java.io.PrintWriter;
//import java.net.HttpURLConnection;
//import java.net.URL;
//import java.net.URLConnection;
//import java.security.MessageDigest;
//import java.security.NoSuchAlgorithmException;
//import java.util.List;
//import java.util.Map;
//
//public class HttpRequestUtil {
//    /**
//     * 向指定URL发送GET方法的请求
//     *
//     * @param url
//     *            发送请求的URL
//     * @param param
//     *            请求参数，请求参数应该是 name1=value1&name2=value2 的形式。
//     * @return URL 所代表远程资源的响应结果
//     */
//    public static String sendGet(String url, String param) {
//        String result = "";
//        BufferedReader in = null;
//        try {
//            String urlNameString = url + "?" + param;
//            URL realUrl = new URL(urlNameString);
//            // 打开和URL之间的连接
//            URLConnection connection = realUrl.openConnection();
//            // 设置通用的请求属性
//            connection.setRequestProperty("accept", "*/*");
//            connection.setRequestProperty("connection", "Keep-Alive");
//            connection.setRequestProperty("user-agent",
//                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
//            // 建立实际的连接
//            connection.connect();
//            // 获取所有响应头字段
//            Map<String, List<String>> map = connection.getHeaderFields();
//            // 遍历所有的响应头字段
//            for (String key : map.keySet()) {
//                System.out.println(key + "--->" + map.get(key));
//            }
//            // 定义 BufferedReader输入流来读取URL的响应
//            in = new BufferedReader(new InputStreamReader(
//                    connection.getInputStream()));
//            String line;
//            while ((line = in.readLine()) != null) {
//                result += line;
//            }
//        } catch (Exception e) {
//            System.out.println("发送GET请求出现异常！" + e);
//            e.printStackTrace();
//        }
//        // 使用finally块来关闭输入流
//        finally {
//            try {
//                if (in != null) {
//                    in.close();
//                }
//            } catch (Exception e2) {
//                e2.printStackTrace();
//            }
//        }
//        return result;
//    }
//    /**
//     * 向指定 URL 发送POST方法的请求
//     *
//     * @param url
//     *            发送请求的 URL
//     * @param param
//     *            请求参数，请求参数应该是 name1=value1&name2=value2 的形式。
//     * @return 所代表远程资源的响应结果
//     */
//    public static String sendPost(String url, String param) {
//        PrintWriter out = null;
//        BufferedReader in = null;
//        String result = "";
//        try {
//            URL realUrl = new URL(url);
//            // 打开和URL之间的连接
//            URLConnection conn = realUrl.openConnection();
//            // 设置通用的请求属性
//            conn.setRequestProperty("accept", "*/*");
//            conn.setRequestProperty("connection", "Keep-Alive");
//            conn.setRequestProperty("user-agent",
//                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
//            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
//            // 发送POST请求必须设置如下两行
//            conn.setDoOutput(true);
//            conn.setDoInput(true);
//            // 获取URLConnection对象对应的输出流
//            out = new PrintWriter(conn.getOutputStream());
//            // 发送请求参数
//            out.print(param);
//            // flush输出流的缓冲
//            out.flush();
//            // 定义BufferedReader输入流来读取URL的响应
//            in = new BufferedReader(
//                    new InputStreamReader(conn.getInputStream()));
//            String line;
//            while ((line = in.readLine()) != null) {
//                result += line;
//            }
//        } catch (Exception e) {
//            System.out.println("发送 POST 请求出现异常！"+e);
//            e.printStackTrace();
//        }
//        //使用finally块来关闭输出流、输入流
//        finally{
//            try{
//                if(out!=null){
//                    out.close();
//                }
//                if(in!=null){
//                    in.close();
//                }
//            }
//            catch(IOException ex){
//                ex.printStackTrace();
//            }
//        }
//        return result;
//    }
//
//    public static String MD5(String sourceStr) {
//        String result = "";
//        try {
//            MessageDigest md = MessageDigest.getInstance("MD5");
//            md.update(sourceStr.getBytes());
//            byte b[] = md.digest();
//            int i;
//            StringBuffer buf = new StringBuffer("");
//            for (int offset = 0; offset < b.length; offset++) {
//                i = b[offset];
//                if (i < 0)
//                    i += 256;
//                if (i < 16)
//                    buf.append("0");
//                buf.append(Integer.toHexString(i));
//            }
//            result = buf.toString();
//            //System.out.println("MD5(" + sourceStr + ",32) = " + result);
//            //System.out.println("MD5(" + sourceStr + ",16) = " + buf.toString().substring(8, 24));
//        } catch (NoSuchAlgorithmException e) {
//            System.out.println(e);
//        }
//        return result;
//    }
//
//    /**
//     * 简单get请求，链接带上参数
//     * @param url
//     * @return
//     * @throws IOException
//     */
//    public static String sendSimpleGet(String url) throws Exception {
//        Request request = new Request.Builder().url(url).build();
//      OkHttpClient okHttpClient = new OkHttpClient();
//      Response response = null;
//      String result = "";
//      try {
//        response =  okHttpClient.newCall(request).execute();
//        if (!response.isSuccessful()) {
//          if (null != response && null != response.body()) {
//            response.body().close();
//          }
//          throw new IOException("服务器端错误: " + response);
//        }
//        result = response.body().string();
//      } finally {
//        if (null != response && null != response.body()) {
//          response.body().close();
//        }
//      }
//      return result;
//    }
//
//  /**
//   * 向指定 URL 发送POST方法的请求
//   *
//   * @param url 发送请求的 URL
//   * @param params 请求的参数集合
//   * @return 远程资源的响应结果
//   */
//  @SuppressWarnings("unused")
//  public static String sendPost(String url, Map<String, String> params) {
//    OutputStreamWriter out = null;
//    BufferedReader in = null;
//    StringBuilder result = new StringBuilder();
//    try {
//      URL realUrl = new URL(url);
//      HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();
//      // 发送POST请求必须设置如下两行
//      conn.setDoOutput(true);
//      conn.setDoInput(true);
//      // POST方法
//      conn.setRequestMethod("POST");
//      // 设置通用的请求属性
//      conn.setRequestProperty("accept", "*/*");
//      conn.setRequestProperty("connection", "Keep-Alive");
//      conn.setRequestProperty("user-agent",
//          "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
//      conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
//      conn.connect();
//      // 获取URLConnection对象对应的输出流
//      out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
//      // 发送请求参数
//      if (params != null) {
//        StringBuilder param = new StringBuilder();
//        for (Map.Entry<String, String> entry : params.entrySet()) {
//          if (param.length() > 0) {
//            param.append("&");
//          }
//          param.append(entry.getKey());
//          param.append("=");
//          param.append(entry.getValue());
//        }
//        out.write(param.toString());
//      }
//      // flush输出流的缓冲
//      out.flush();
//      // 定义BufferedReader输入流来读取URL的响应
//      in = new BufferedReader(
//          new InputStreamReader(conn.getInputStream(), "UTF-8"));
//      String line;
//      while ((line = in.readLine()) != null) {
//        result.append(line);
//      }
//    } catch (Exception e) {
//      e.printStackTrace();
//    }
//    //使用finally块来关闭输出流、输入流
//    finally {
//      try {
//        if (out != null) {
//          out.close();
//        }
//        if (in != null) {
//          in.close();
//        }
//      } catch (IOException ex) {
//        ex.printStackTrace();
//      }
//    }
//    return result.toString();
//  }
//
//  /**
//   * json格式提交post请求
//   *
//   * @param url
//   * @param jsonParam
//   * @return
//   * @throws IOException
//   */
//  public static String jsonPost(String url, String jsonParam) throws IOException {
//    OkHttpClient client = new OkHttpClient();
//    MediaType JSON = MediaType.parse("application/json; charset=utf-8");
//    RequestBody body = RequestBody.create(JSON, jsonParam);
//    Request request = new Request.Builder()
//        .url(url)
//        .post(body)
//        .build();
//    Response response = client.newCall(request).execute();
//    return response.body().string();
//  }
//
//
//
//
//}
//
